The Internet is a global network of inter-connected computer systems that is widely used to provide and to access information. A web server is an example of an Internet-connected computer system that can provide information to Internet-connected client computers. Provided information may be accessed in units called web objects. Web clients connect to web servers and access web objects. A primary web server from which a web object originates may be called an origin server. An arbitrary piece of information may be called an object.
As Internet access becomes more popular, less expensive and faster, and as the number of clients increases, so does the number of connections made to particular origin servers. This increased number of connections can increase both network load and server load, sometimes causing parts of the Internet and particular origin servers to become so overloaded that they become inaccessible.
Cache systems can be used to reduce both network load and origin server load by migrating copies of popular objects from origin servers to cache servers. The cache servers may reside on a network, in locations close to particular clients.
A protocol defines how a client and an origin server communicate. The Internet, for example, uses protocols such as the Hypertext Transfer Protocol (“HTTP”) to transfer information. In HTTP, a client sends a service request message to an origin server. For example, a service request message might include a request for a method to be performed on an object in the origin server. The object may be identified in the service request message by a uniform resource locator (“URL”), which is an identifier of the object. An origin server ordinarily responds to a service request message by performing the method corresponding to the request. The request may be a retrieve operation, which causes the origin server to retrieve the object identified by the URL, and transmit it to the requesting client.
Various means for caching data may be used in computer systems to reduce system loads by storing copies of frequently accessed information in places closer to where the information is likely to be needed. In response to a request from an information requester, a conventional cache system determines whether the requested information is cached. When the cache system determines requested information is not cached, the cache system may then request and receive corresponding information from an appropriate information provider. If, on the other hand, the information is already in the cache, it is not necessary for the caching system to obtain the requested information from an origin server. In either case, the requested information is then provided to the requester. By thus reducing loads and locating data closer to where it is needed, caching systems make data access more efficient.
Additionally, conventional cache systems can improve the speed of information transfer between an information requester and an information provider. Conventional cache systems generally include a high speed memory that stores information requested from an information provider. A cache may be used in networks to expedite transferring information between a client, the information requester, and an origin server, the information provider.
However, systems and methods are needed that provide a reliable cache system that can provide for cache replacement without interfering with normal operation of a cache. Embodiments consistent with the present invention satisfy this need.